home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Apple Shared Library Manager / ASLM Developer Tools / Interfaces / PInterfaces / LibraryManager.p next >
Encoding:
Text File  |  1996-11-19  |  6.6 KB  |  203 lines  |  [TEXT/MPS ]

  1. {    File:        LibraryManager.p
  2.  
  3.     Contains:    Minimal declarations you need to use the SLM.
  4.  
  5.     Copyright:    © 1991-1994 by Apple Computer, Inc., all rights reserved.
  6.  
  7.  
  8. }
  9.  
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT LibraryManager;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingLibraryManager}
  22. {$SETC UsingLibraryManager := 1}
  23.  
  24. {$I+}
  25. {$SETC LibraryManagerIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I Types.p}
  29. {$ENDC}
  30. {$SETC UsingIncludes := LibraryManagerIncludes}
  31.  
  32. {******************************************************************************
  33. ** System-wide Defines
  34. *******************************************************************************}
  35.  
  36. {$IFC UNDEFINED qDebug}
  37. {$SETC qDebug := 1}
  38. {$ENDC}
  39. {$IFC UNDEFINED MAC68K}
  40. {$SETC MAC68K := 1}
  41. {$ENDC}
  42.  
  43. {******************************************************************************
  44. ** Error Constants
  45. *******************************************************************************}
  46.  
  47. CONST
  48.     kNoError                        = 0;
  49.  
  50.     kASLMNotFoundErr                = -3120;    { class wasn't found }
  51.     kNoParent                        = -3121;    { class doesn't have a shared parent }
  52.     kParentNotFound                    = -3122;    { shared parent of class could not be found }
  53.     kNotRelated                        = -3123;    { the classes are not related }
  54.     kASLMInvalidObjectErr            = -3124;    { not a valid object }
  55.  
  56.     kASLMPoolCorruptedErr            = -3125;
  57.     kASLMOutOfMemoryErr                = -3126;
  58.  
  59.     kASLMCodeNotLoadedErr            = -3127;
  60.     kASLMCouldNotLoadCodeErr        = -3128;
  61.  
  62.     kASLMFilePreflightedErr            = -3129;    { can't close library file because it is preflighted }
  63.     kASLMFileNotPreflightedErr        = -3130;    { failed because library file is not preflighted }
  64.     kASLMFileNotFoundErr            = -3131;
  65.  
  66.     kASLMLibraryManagerNotLoadedErr    = -3132;
  67.  
  68.     kASLMDuplicateFoundErr            = -3134;    { duplicate found is collection }
  69.  
  70.     kASLMSeedChangedErr                = -3135;
  71.     kASLMUnconstructedObjectErr        = -3136;
  72.     kASLMInternalErrorErr            = -3137;
  73.     kASLMVersionErrorErr            = -3138;
  74.  
  75.     kASLMFolderNotFoundErr            = -3139;    { for RegisterLibraryFileFolder/UnregisterLibraryFileFolder }
  76.     kASLMFolderInUseErr                = -3140;    { for UnregisterLibraryFileFolder }
  77.  
  78.     kASLMResourceNotFoundErr        = -3141;
  79.  
  80.     kASLMNotAllowedNowErr            = -3155;    { matches XTI TOUTSTATE }
  81.     kASLMNotSupportedErr            = -3167;    { matches XTI TNOTSUPPORT }
  82.  
  83. {******************************************************************************
  84. ** Typedefs
  85. *******************************************************************************}
  86.  
  87. TYPE    GlobalWorld        = Ptr;
  88. CONST    kInvalidWorld    = 0;
  89.  
  90. TYPE    Version         = INTEGER;
  91. CONST    kAnyVersion        = 0;
  92.  
  93. {******************************************************************************
  94. ** Forward class declarations
  95. *******************************************************************************}
  96.  
  97. TYPE
  98.     TDynamicPtr            = Ptr;
  99.     TLibraryManagerPtr    = Ptr;
  100.     TClassID            = StringPtr;
  101.     TFunctionSetID        = StringPtr;
  102.     TLibraryID            = StringPtr;
  103.     TFormattedStreamPtr    = Ptr;
  104.     TStandardPoolPtr    = Ptr;
  105.     TClassInfoPtr        = Ptr;
  106.  
  107. {******************************************************************************
  108. ** Enums for Memory types
  109. *******************************************************************************}
  110.  
  111. TYPE ZoneType =
  112. (
  113.     kDummyZone, kSystemZone, kKernelZone, kApplicZone,
  114.     kCurrentZone, kTempZone
  115. );
  116.  
  117. TYPE MemoryType =
  118. (
  119.     kDummyMemory, kNormalMemory, kHoldMemory, kLockMemory, kLockMemoryContiguous
  120. );
  121.  
  122.  
  123. {******************************************************************************
  124. ** Some global routines
  125. **
  126. ** InitLibraryManager initializes a client to use the ASLM. All clients
  127. ** must make this call except for ASLM libraries. CleanupLibraryManager
  128. ** should be called when the client is done using the ASLM.
  129. **
  130. ** GetLocalLibraryManager can be called after InitLibraryManager is called. If it
  131. ** returns NULL then InitLibraryManager failed.
  132. *******************************************************************************}
  133.  
  134. {    -------------------------------------------------------------------------
  135.     These functions are for use by applications or stand-alone code 
  136.     resources only
  137.     ------------------------------------------------------------------------- }
  138.  
  139. FUNCTION    InitLibraryManager(poolsize : LONGINT; zone : ZoneType; memType : MemoryType): OSErr; C;
  140. PROCEDURE    CleanupLibraryManager; C;
  141.  
  142. {    -------------------------------------------------------------------------
  143.     These functions can be used by any Shared Library Manager clients
  144.     ------------------------------------------------------------------------- }
  145.     
  146. FUNCTION    NewObject(classID : TClassID; VAR err : OSErr; pool : TStandardPoolPtr): Ptr; C;
  147. FUNCTION    NewObjectWithParent(classID : TClassID; parentID : TClassID;
  148.                                 VAR err : OSErr; pool : TStandardPoolPtr): Ptr; C;
  149. FUNCTION    NewObjectFromStream(stream : TFormattedStreamPtr; VAR err : OSErr;
  150.                                 pool : TStandardPoolPtr): Ptr; C;
  151.  
  152. FUNCTION    GetClassInfo(classID : TClassID): TClassInfoPtr; C;
  153.  
  154. FUNCTION    VerifyClass(classID : TClassID; parentID : TClassID): OSErr; C;
  155. FUNCTION    CastObject(object : Ptr; parentID : TClassID; VAR err : OSErr): Ptr; C;
  156. FUNCTION    CastToMainObject(object : Ptr): Ptr; C;
  157.  
  158. FUNCTION    LoadClass(classID : TClassID; forceAll : Boolean): OSErr; C;
  159. FUNCTION    UnloadClass(classID : TClassID): OSErr; C;
  160. FUNCTION    IsClassLoaded(classID : TClassID): Boolean; C;
  161.  
  162. FUNCTION    LoadFunctionSet(functionSetID : TFunctionSetID; forceAll : Boolean): OSErr; C;
  163. FUNCTION    UnloadFunctionSet(functionSetID : TFunctionSetID): OSErr; C;
  164. FUNCTION    IsFunctionSetLoaded(functionSetID : TFunctionSetID): Boolean; C;
  165.  
  166. FUNCTION    GetFunctionPointer(functionSetID : TFunctionSetID; funcName : StringPtr;
  167.                                version : Version; VAR err : OSErr): ProcPtr; C;
  168. FUNCTION    GetIndexedFunctionPointer(functionSetID : TFunctionSetID; idx : INTEGER;
  169.                                version : Version; VAR err : OSErr): ProcPtr; C;
  170.  
  171. FUNCTION    LoadLibraries(forceAll : Boolean): OSErr; C;
  172. FUNCTION    UnloadLibraries: OSErr; C;
  173. PROCEDURE    ResetFunctionSet(functionSetID : TFunctionSetID); C;
  174.  
  175. FUNCTION    TraceLogOn: Boolean; C;
  176. FUNCTION    TraceLogOff: Boolean; C;
  177.  
  178. FUNCTION    GetLocalLibraryManager: TLibraryManagerPtr; C;
  179.  
  180. FUNCTION    GetLocalPool: TStandardPoolPtr; C;
  181. PROCEDURE    SetLocalPool(pool : TStandardPoolPtr); C;
  182. FUNCTION    GetClientPool: TStandardPoolPtr; C;
  183. FUNCTION    GetDefaultPool: TStandardPoolPtr; C;
  184. PROCEDURE    SetDefaultPool(pool : TStandardPoolPtr); C;
  185. FUNCTION    GetSystemPool: TStandardPoolPtr; C;
  186.  
  187.  
  188. {*******************************************************************************
  189. ** EXCEPTION Handling
  190. **
  191. ** Only calling Fail is allowed from Pascal
  192. ********************************************************************************}
  193.  
  194. PROCEDURE    Fail(err : OSErr; message : StringPtr); C;
  195.  
  196.  
  197. {$ENDC}    { UsingLibraryManager }
  198.  
  199. {$IFC NOT UsingIncludes}
  200.     END.
  201. {$ENDC}
  202.  
  203.